Categorías destacadas
programacion php    
Artículo
19
¡votar!

 Acceso a Bases de Datos [JDBC]


Utilizar Uniones

Algunas veces necesitamos utilizar una o más tablas para obtener los datos que queremos. Por ejemplo, supongamos que el propietario del "The Coffee Break" quiere una lista de los cafés que le compra a Acme, Inc. Esto implica información de la tabla COFFEES y también de la que vamos a crear SUPPLIERS. Este es el caso en que se necesitan los "joins" (unión). Una unión es una operación de base de datos que relaciona dos o más tablas por medio de los valores que comparten. En nuestro ejemplo, las tablas COFFEES y SUPPLIERS tienen la columna SUP_ID, que puede ser utilizada para unirlas.

Antes de ir más allá, necesitamos crear la tabla SUPPLIERS y rellenarla con valores.

El sigueinte código crea la tabla SUPPLIERS.

String createSUPPLIERS = "create table SUPPLIERS " +  
			 "(SUP_ID INTEGER, SUP_NAME VARCHAR(40), " + 			
			 "STREET VARCHAR(40), CITY VARCHAR(20), " +
			 "STATE CHAR(2), ZIP CHAR(5))";
stmt.executeUpdate(createSUPPLIERS);

El siguiente código inserta filas para tres suministradores dentro de SUPPLIERS.

stmt.executeUpdate("insert into SUPPLIERS values (101, " +
		"'Acme, Inc.', '99 Market Street', 'Groundsville', " + "'CA', '95199'");
stmt.executeUpdate("Insert into SUPPLIERS values (49," +
		"'Superior Coffee', '1 Party Place', 'Mendocino', 'CA', " + "'95460'");
stmt.executeUpdate("Insert into SUPPLIERS values (150, " + 
		"'The High Ground', '100 Coffee Lane', 'Meadows', 'CA', " + "'93966'");

El siguiente código selecciona la tabla y nos permite verla.

ResultSet rs = stmt.executeQuery("select * from SUPPLIERS");

El resultado sería algo similar a esto.

SUP_ID SUP_NAME STREET CITY STATE ZIP
---------- ---------------------- --------------------- ---------------- --------- ---------
101 Acme, Inc. 99 Market Street Groundsville CA 95199
49 Superior Coffee 1 Party Place Mendocino CA 95460
150 The High Ground 100 Coffee Lane Meadows CA 93966

Ahora que tenemos las tablas COFFEES y SUPPLIERS, podremos proceder con el escenario en que el propietario quería una lista de los cafés comprados a un suministrador particular. Los nombres de los suminstradores están en la tabla SUPPLIERS, y los nombres de los cafés en la tabla COFFEES. Como ambas tablas tienen la columna SUP_ID, podemos utilizar esta columna en una unión. Lo siguiente que necesitamos es la forma de distinguir la columna SUP_ID a la que nos referimos. Esto se hace precediendo el nombre de la columna con el nombre de la tabla, "COFFEES.SUP_ID" para indicar que queremos referirnos a la columna SUP_ID de la tabla COFFEES. En el siguiente código, donde stmt es un objeto Statement, seleccionamos los cafés comprados a Acme, Inc..

String query = "
SELECT COFFEES.COF_NAME " +
   "FROM COFFEES, SUPPLIERS " +
   "WHERE SUPPLIERS.SUP_NAME LIKE 'Acme, Inc.'" +
   "and SUPPLIERS.SUP_ID = COFFEES.SUP_ID";

ResultSet rs = stmt.executeQuery(query);
System.out.println("Coffees bought from Acme, Inc.: ");
while (rs.next()) {
		String coffeeName = getString("COF_NAME");
		System.out.println("     " + coffeeName);
}

Esto producirá la siguiente salida.

Coffees bought from Acme, Inc..
     Colombian
     Colombian_Decaf
Publicado por:
Ricard Lou Torrijos
Recomendar
a un amigo
Compartir
en redes
 
Comentarios
Gus_Unad dice:

Saludos Ricard. Muchas gracias por el exelente aporte era lo que estaba buscando. Si me pudieras facilitar la aplicacion completa de la que hablas aca te lo agradeceria muchisimo, ya mire el link pero ya no esta ha de ser por el tiempo que ha pasado. Nuevamente MIL GRACIAS

14/06/2010, a las 05:25:29
 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon